package com.alibaba.citrus.cr.sales.plan.api.salesplan.adjust;


import com.alibaba.citrus.cr.sales.plan.dto.api.request.ChangePasswordRequest;
import com.alibaba.citrus.cr.sales.plan.dto.api.request.FirstLoginEmailRequest;
import com.alibaba.citrus.cr.sales.plan.dto.api.request.PageQueryAdjustmentDetailsRequest;
import com.alibaba.citrus.cr.sales.plan.dto.api.request.ResetPasswordEmailRequest;
import com.alibaba.citrus.cr.sales.plan.dto.api.request.SalesPlanAdjustDetailExportRequest;
import com.alibaba.citrus.cr.sales.plan.dto.api.request.SalesPlanAdjustImportRequest;
import com.alibaba.citrus.cr.sales.plan.dto.api.request.SalesPlanImportRequest;
import com.alibaba.citrus.cr.sales.plan.dto.api.response.SalesPlanAdjustDetailExportResponse;
import com.alibaba.citrus.cr.sales.plan.sdo.AccountDeactivationSDO;
import com.alibaba.citrus.cr.sales.plan.sdo.SendMailSDO;
import com.alibaba.lattice2.epoch.meshflow.model.annotation.MeshFlowService;
import com.alibaba.lattice2.epoch.sdk.model.Result;

import java.util.List;


@MeshFlowService(apps = {"bc_order"}, name = "salesPlanAdjustDetailFileService")
public interface SalesPlanAdjustDetailFileService {

    /**
     * 调整任务生成EasyExcel文件
     *
     * @param pageQueryAdjustmentDetailsRequest
     * @return
     */
    Result<SendMailSDO> adjustmentWriteEasyExcelFile(PageQueryAdjustmentDetailsRequest pageQueryAdjustmentDetailsRequest);

    /**
     * 导入月度计划调整明细
     *
     * @param requestList
     * @return
     */
    Result<List<SalesPlanAdjustImportRequest>> salesPlanAdjustImportHandle(List<SalesPlanAdjustImportRequest> requestList, SalesPlanImportRequest salesPlanImportRequest);

    /**
     * 月度计划调整明细导出服务
     *
     * @param exportRequest
     * @return
     */
    Result<List<SalesPlanAdjustDetailExportResponse>> salesPlanAdjustDetailExportList(SalesPlanAdjustDetailExportRequest exportRequest);

    /**
     * 首次创建邮件通知
     *
     * @param firstLoginEmailRequest
     * @return
     */
    Result<SendMailSDO> firstLoginEmail(FirstLoginEmailRequest firstLoginEmailRequest);

    /**
     * 账号停用
     *
     * @param resetPasswordEmailRequest
     * @return
     */
    Result<AccountDeactivationSDO> accountDeactivation(ResetPasswordEmailRequest resetPasswordEmailRequest);

    /**
     * 货品类目维护
     *
     * @return
     */
    Result<SendMailSDO> categoryMaintenance();


}
